package seatiger.tomcat.catalina;

import java.io.IOException;

/**
 * Session管理器接口
 */
public interface Manager {

    /**
     * 获取关联的容器
     * @return
     */
    Container getContainer();

    /**
     * 设置关联容器
     * @param container
     */
    void setContainer(Container container);

    /**
     * 将Session添加到池中
     * @param session
     */
    void add(Session session);

    /**
     * 创建一个Session
     * @return
     */
    Session createSession();

    /**
     * 创建一个空的Session，不放入缓存中
     * @return
     */
    Session createEmptySession();

    /**
     * 根据一个Session id查找一个Session
     * @param id
     * @return
     * @throws IOException
     */
    Session findSession(String id) throws IOException;

    /**
     * 获取所有的Session
     * @return
     */
    Session[] findSessions();

    /**
     * 删除session
     * @param session
     */
    void remove(Session session);
}
